///////////////////////////////////////////////////////////
//  Pages.h
//  Implementation of the Class Pages
//  Created on:      21-Aug-2013 11:15:31 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_AEA1E52A_9E08_4dcc_B6BA_7E070ACE5DE4__INCLUDED_)
#define EA_AEA1E52A_9E08_4dcc_B6BA_7E070ACE5DE4__INCLUDED_

#include "..\Interfaces\IPages.h"
#include <vector>

namespace Data
{
class Pages : public IPages
{

public:
	Pages();
	Pages(const Pages& anotherItem);
	virtual ~Pages();
	virtual IObject::ObjectType GetType() const;
  virtual String_t GetName() const;
  virtual void SetName(const String_t& name);
	virtual IPage* GetPage(unsigned int index) const;
	virtual void AppendPage(IPage* page);
	virtual int CountPages() const;
	virtual void RemovePage(unsigned int index);
	virtual IObject* Clone();
	virtual String_t ToXML();
  virtual IPage* operator[](unsigned int index);

private:
	IObject::ObjectType m_type;
	std::vector<IPage*> m_pageChilds;
  String_t        m_name;
};
}
#endif // !defined(EA_AEA1E52A_9E08_4dcc_B6BA_7E070ACE5DE4__INCLUDED_)
